package rothag.graphics.roulette;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.BoxLayout;
import javax.swing.JPanel;
import javax.swing.Timer;

/**
 *
 * @author 
 */
public class CompteurTournantJPanel extends JPanel {

    private RouletteJPanel[] jPanel = null;
    private int nbr_chiffre = 2;
    private int taillechiffre;

    public CompteurTournantJPanel(int nbrchiffre, int taillechiffre) throws IOException {
        super();

        this.nbr_chiffre = nbrchiffre;
        this.taillechiffre = taillechiffre;
        initialize();

        Timer triUpdater = new Timer(25, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                repaint();
            }
        });

        triUpdater.start();
    }

    private void initialize() throws IOException {
        this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));

        jPanel = new RouletteJPanel[nbr_chiffre];
        for (int j = 0; j < jPanel.length; j++) {
            add(getJPanel(j));
        }
    }

    private RouletteJPanel getJPanel(int i) throws IOException {
        if (jPanel[i] == null) {
            jPanel[i] = new RouletteJPanel(taillechiffre);
        }
        return jPanel[i];
    }

    /**
     * Valeur a rentrer un string qui sera convertit en int puis reformatter avec un sprintf("%05d");
     * @param valeur
     */
    public void setValue(String valeur) {
        long vL = new Long("" + valeur);
        String chiffre = String.format("%0" + nbr_chiffre + "d", vL);
        for (int i = 0; i < nbr_chiffre; i++) {
            Long v = new Long("" + chiffre.charAt(i));
            jPanel[i].roulette.setValue(v.intValue());
        }
    }
}
